//判断用户是否登录
const AUTH = require('../HTTP/api')


//检测微信用户登录状态方法
function checkWXStatus() {

  return new Promise((resolve, reject) => {

    wx.checkSession({
      success: () => {
        resolve(true)
      },
      fail: () => {
        resolve(false)
      }
    })
  })

}


//检测用户是否登录
async function hasUserLoginChecked() {

  //先查看本地有没有token

  const token = wx.getStorageSync('token')

  if (!token) return false;

  //再查看本地token是否有效
  const res = await AUTH.checkTokeValidApi(token)

  //0代表成功 非0代表token无效
  if (res.code !== 0) {

    //如果toke无效，删除本地token
    wx.removeStorageSync('token')

    return false

  }



  //再查看当前用户在小程序的登录态

  const flag = await checkWXStatus()

  if (!flag) {
    //如果toke无效，删除本地token
    wx.removeStorageSync('token')

    return false
  }


  return true


}

//自动注册与登录方法
function authRegAndLogin() {
  return new Promise((resolve, reject) => {
    wx.login({
      async success(res) {
        // console.log('code码：', res.code)
        // console.log(res);
        //调用自动注册登录接口
        const result = await AUTH.authRegAndLoginApi(res.code)
        // console.log(result);
        //保存token
        wx.setStorageSync('token', result.data.token)
        //保存用户id
        wx.setStorageSync('uid', result.data.uid)
      }
    })

  })
}

module.exports = {
  hasUserLoginChecked,
  authRegAndLogin
}